package com.animee.health;

import android.annotation.SuppressLint;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;

import java.util.ArrayList;
import java.util.List;

// 实现onclick接口,重写 onclick方法
public class AboutActivity extends AppCompatActivity implements View.OnClickListener {
    // 找到需要用到的控件
    ViewPager aboutVp;  // 左右翻转数据页面
    TextView shareTv;   // 分享页面那个TextView组件
    // 放置小点点滚动的布局
    LinearLayout pointLayout;
    List<View> viewList;   // ViewPager的数据源
    // 图片资源
    int[] picIds = {R.mipmap.ab1, R.mipmap.ab2, R.mipmap.ab3, R.mipmap.ab4, R.mipmap.ab5};
    List<ImageView> pointList;       // 存放显示器小点点的集合
    @SuppressLint("HandlerLeak")
    // 定时器实现自动播放功能
            Handler handler = new Handler() {
        @Override
        public void handleMessage(Message msg) {        // 接收消息,line81自己发送自己接收 -> handler.sendEmptyMessageDelayed(1, 5000);
            if (msg.what == 1) {            // 接收到消息后判断编号是不是1
                // 接收到消息之后，判断是准确的,需要使ViewPager页面向下滑动一页
                int currentItem = aboutVp.getCurrentItem(); // 获取当前页面
                aboutVp.setCurrentItem(currentItem + 1);    // 设置显示下一页,就是当前页面加一
                handler.sendEmptyMessageDelayed(1, 5000);   // 继续发送下一条消息
                // 接收和 发送就实现了闭环,在不断循环
            }
        }
    };
    private AboutAdapter adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_about);
        aboutVp = findViewById(R.id.about_vp);
        shareTv = findViewById(R.id.about_tv_share);
        pointLayout = findViewById(R.id.about_layout_point);
        // 为shareTv设置点击事件方法
        shareTv.setOnClickListener(this);
        viewList = new ArrayList<>();
        pointList = new ArrayList<>();  // 对小点点集合初始化
        // 初始化ViewPager的页面信息
        for (int i = 0; i < picIds.length; i++) {
            // 传入item_aboutvp
            View view = LayoutInflater.from(this).inflate(R.layout.item_aboutvp, null);
            // 获取其中的ImageView
            ImageView iv = view.findViewById(R.id.item_aboutvp_iv);
            // 放入数组中
            iv.setImageResource(picIds[i]);
            // 填入到集合里
            viewList.add(view);
            // 创建指示器内容,传入所在的activity
            ImageView pointIv = new ImageView(this);
            // 在代码中设置控件的宽高和外边距等属性
            LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
            // 设置外边距,让点和点之间拉开边距
            lp.setMargins(0, 0, 20, 0);
            // 将布局参数设置给ImageView
            pointIv.setLayoutParams(lp);
            pointIv.setImageResource(R.mipmap.a2);  // 设置显示的资源a2
            pointList.add(pointIv);                 // 添加到集合当中便于统一管理
            pointLayout.addView(pointIv);           // 添加到布局当中显示出来
        }
        pointList.get(0).setImageResource(R.mipmap.a3);  // 默认选中第一个,设置第一个小圆点为选中状态,红色的
        // 创建适配器对象
        adapter = new AboutAdapter(viewList);
        // 设置适配器
        aboutVp.setAdapter(adapter);
        // 5秒发送切换页面消息,handleMessage()方法进行接受line34 ->  public void handleMessage(Message msg)
        handler.sendEmptyMessageDelayed(1, 5000);
        // 设置ViewPager页面监听器
        setVPListener();
    }

    private void setVPListener() {
        /* 设置ViewPager的监听器*/
        aboutVp.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
            }

            @Override
            public void onPageSelected(int position) {//选中,传入选中的位置
                for (int i = 0; i < pointList.size(); i++) {
                    // 先把每一个点都改成默认的白色
                    pointList.get(i).setImageResource(R.mipmap.a2);
                }
                // 只有这个固定的位置给改变成红色(有取余,防止溢出)
                pointList.get(position % pointList.size()).setImageResource(R.mipmap.a3);
            }

            @Override
            public void onPageScrollStateChanged(int state) {
                // 滚动状态,正在滚动或停止滚动
            }
        });
    }

    // 本页面只有shareTv被设置了点击事件,所以不用判断是谁被点击了
    @Override
    public void onClick(View v) {
        // 调用系统自带的分享功能
        Intent intent = new Intent(Intent.ACTION_SEND);
        // 选择分享的类型:文本类型
        intent.setType("text/plain");
        // 写死要分享的内容
        String msg = "健康饮食非常的重要，了解饮食各种营养素和热量，摄入正确的食物，让你变得更健康，想要了解更多么，快来下载健康饮食app吧~~";
        intent.putExtra(Intent.EXTRA_TEXT, msg);
        // 设置跳转
        startActivity(Intent.createChooser(intent, "健康饮食分享"));
    }
}
